<template>
  <!-- 放置一个图标 -->
  <div class="screenWrapper">
    <!-- 这里做一个判断，不同的状态下显示不同的图标，不能写死 -->
    <svg-icon
      :icon-class="isFull? 'exit-fullscreen': 'fullscreen'"
      class="fullscreen"
      @click="toggleScreen"
    />
  </div>
</template>

<script>
export default {
  name: 'ScreenFull',
  data() {
    return {
      // 准备一个数据项，默认非全屏
      isFull: false
    }
  },
  mounted() {
    document.addEventListener('fullscreenchange', e => {
      // 监听屏幕变化，判断当前是否为全屏，如果非全屏，就将ifFull重置为false
      const isFull = document.fullscreenElement // 这个属性是自带的，会有兼容性问题
      if (!isFull) {
        this.isFull = false
      }
    })
  },
  methods: {
    toggleScreen() {
      // 开启全屏或关闭（取反）
      // 1. 如果当前是全屏状态就关闭全屏
      // 2. 如果当前是非全屏状态就开启全屏
      if (this.isFull === true) {
        // 退出全屏
        document.exitFullscreen()
      } else {
        document.documentElement.requestFullscreen()
      }
      // 不管当前是什么状态，点击之后都取反
      this.isFull = !this.isFull
    }
  }
}
</script>

<style lang="scss" scoped>
.screenWrapper {
  display: flex;
  align-items: center;
  margin-right: 20px;
}
.fullscreen {
  width: 20px;
  height: 20px;
  color: #fff;
  cursor: pointer;
}
</style>
